home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1996-05-01 | 8.3 KB | 264 lines | [ TEXT/MPS ]
{ File: DesktopAnimation.p Contains: Desktop Animation Interfaces. Version: Technology: System 8 Release: Universal Interfaces 3.0d3 on Copland DR1 Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, send the file and version information (from above) and the problem description to: Internet: apple.bugs@applelink.apple.com AppleLink: APPLE.BUGS } {$IFC UNDEFINED UsingIncludes} {$SETC UsingIncludes := 0} {$ENDC} {$IFC NOT UsingIncludes} UNIT DesktopAnimation; INTERFACE {$ENDC} {$IFC UNDEFINED __DESKTOPANIMATION__} {$SETC __DESKTOPANIMATION__ := 1} {$I+} {$SETC DesktopAnimationIncludes := UsingIncludes} {$SETC UsingIncludes := 1} {$IFC UNDEFINED __APPEARANCE__} {$I Appearance.p} {$ENDC} {$IFC UNDEFINED __CODEFRAGMENTS__} {$I CodeFragments.p} {$ENDC} {$IFC UNDEFINED __COLLECTIONS__} {$I Collections.p} {$ENDC} {$IFC UNDEFINED __DIALOGS__} {$I Dialogs.p} {$ENDC} {$IFC UNDEFINED __DISPLAYS__} {$I Displays.p} {$ENDC} {$IFC UNDEFINED __FILEMANAGERTYPES__} {$I FileManagerTypes.p} {$ENDC} {$IFC UNDEFINED __GXTYPES__} {$I GXTypes.p} {$ENDC} {$IFC UNDEFINED __QDOFFSCREEN__} {$I QDOffscreen.p} {$ENDC} {$IFC UNDEFINED __TEXTOBJECTS__} {$I TextObjects.p} {$ENDC} {$IFC UNDEFINED __TYPES__} {$I Types.p} {$ENDC} {$PUSH} {$ALIGN MAC68K} {$LibExport+} {$IFC FOR_SYSTEM8_COOPERATIVE } { Gestalt selectors to tell if DAM is installed #### Move to Gestalt.i later } CONST gestaltDesktopAnimationMgr = 'danm'; gestaltDesktopAnimationMgrPresent = 0; { If bit set then DAM is present } { Desktop Animation module file resources } kDesktopAnimModuleFileType = 'damm'; kDesktopAnimListRsrcType = 'giz#'; kDesktopAnimListRsrcVers = 0; kDesktopAnimListRsrcID = 128; kDesktopAnimFirstRsrcID = 8192; kDesktopAnimLastRsrcID = 16383; { Properties relating to the DesktopAnimPanel } kDesktopAnimPanelPropertyTag = 'ptag'; kDesktopAnimPanelUndoTextTag = 'utxt'; kDesktopAnimPanelValueToggleTag = 'vtog'; { Desktop Animation info values } kDesktopAnimModuleInfoVers = 0; kDesktopAnimModuleInfoShareAny = 0; { DesktopAnimFlags } kDesktopAnimDesktop = $00000001; kDesktopAnimBackground = $00000002; { No drawing behind this module } kDesktopAnimScreenSaver = $00000004; kDesktopAnimCanShareWindow = $00000008; kDesktopAnimAllDisplays = $00000010; kDesktopAnimIsSharingWindow = $00000020; { If called as part of multiple modules } kDesktopAnimUnfadeOnKeyboard = $00000040; { ScreenSaver only } kDesktopAnimUnfadeOnMouseMotion = $00000080; { ScreenSaver only } kDesktopAnimOwnsColorPalette = $00000100; { ScreenSaver only } kDesktopAnimRequestTerminate = $00000200; { ScreenSaver output only } kDesktopAnimDrawingOffscreen = $00000400; { Should be set when asking a module to draw to an offscreen } { Flags that indicate what mode we are running in } kDesktopAnimModeFlags = $00000007; { Flags we determine at runtime when initializing/running a module } kDesktopAnimRuntimeFlags = $00000737; TYPE DesktopAnimFlags = UInt32; { Pre-defined Desktop Animation property tags } CONST kDesktopAnimDisplayRgnTag = 'drgn'; kDesktopAnimDisplayDepthTag = 'dpth'; { Error codes (will be moved to Error.i when we have an assigned range) } kDesktopAnimModuleNotFoundErr = -3000; kDesktopAnimServerNotFoundErr = -3001; kDesktopAnimDrawNotFoundErr = -3002; kDesktopAnimPanelNotFoundErr = -3003; kDesktopAnimDrawInitErr = -3004; kDesktopAnimDrawPanelErr = -3005; kDesktopAnimBadScreenSaverErr = -3006; kDesktopAnimScreenSaverInternalErr = -3007; kDesktopAnimItemNotModuleErr = -3008; kDesktopAnimNoQuickdrawGXErr = -3009; kDesktopAnimBadDesktopAnimModuleDescRefErr = -3010; kDesktopAnimUnknownModuleListVersErr = -3011; kDesktopAnimUnknownModuleInfoVersErr = -3012; kDesktopAnimUnknownPatternListVersErr = -3013; kDesktopAnimIllegalDesktopAnimationStatusErr = -3014; kDesktopAnimModuleNameTooLongErr = -3015; kDesktopAnimOffscreenLockPixelsErr = -3016; kDesktopAnimQuickdrawGXErr = -3017; { Desktop Pattern Support } kDesktopPatternListRsrcType = 'dtp#'; kDesktopPatternListRsrcVers = 0; kDesktopPatternListRsrcID = 128; { Reasons Screen Saver wants to unfade } kScreenSaverUnfadeUnknown = 0; kScreenSaverUnfadeKeyboard = 1; kScreenSaverUnfadeMouseMotion = 2; kScreenSaverUnfadeByRequest = 3; kScreenSaverUnfadeSelfRequest = 4; TYPE ScreenSaverUnfadeType = SInt32; { The drawing surfaces record } DesktopAnimGraphicsPortsPtr = ^DesktopAnimGraphicsPorts; DesktopAnimGraphicsPorts = RECORD drawPort: CGrafPtr; gxDrawPort: gxViewPort; END; { Offscreen drawing record } DesktopAnimOffscreenGraphicsPortsPtr = ^DesktopAnimOffscreenGraphicsPorts; DesktopAnimOffscreenGraphicsPorts = RECORD offGWorld: GWorldPtr; offGXDrawPort: gxViewPort; offGXViewDevice: gxViewDevice; offGXViewGroup: gxViewGroup; END; { Info record for modules when created/opened } DesktopAnimModuleInfoPtr = ^DesktopAnimModuleInfo; DesktopAnimModuleInfo = RECORD version: SInt32; moduleFlags: DesktopAnimFlags; shareWithSignature: OSType; END; { Info record for Desktop Animation list resource (kDesktopAnimListRsrcType) } DesktopAnimModuleListInfoPtr = ^DesktopAnimModuleListInfo; DesktopAnimModuleListInfo = RECORD itemListID: SInt16; textObjectListID: SInt16; byLineIndex: SInt16; moduleNameIndex: SInt16; moduleInfo: DesktopAnimModuleInfo; desktopAnimPanelHandler: Str63; desktopAnimDrawHandler: Str63; END; { The Desktop Animation list resource (kDesktopAnimListRsrcType) } DesktopAnimModuleListRsrcRecPtr = ^DesktopAnimModuleListRsrcRec; DesktopAnimModuleListRsrcRec = RECORD version: SInt32; desktopAnimServerHandler: Str63; modulesCnt: SInt32; modules: ARRAY [0..0] OF DesktopAnimModuleListInfo; END; DesktopAnimModuleListRsrcPtr = ^DesktopAnimModuleListRsrcRec; DesktopAnimModuleListRsrcHandle = ^DesktopAnimModuleListRsrcPtr; { Desktop Pattern Record } DesktopPatternPtr = ^DesktopPattern; DesktopPattern = RECORD ppatRsrcID: SInt16; nameListID: SInt16; nameListIndex: SInt16; END; { Desktop Pattern List resource (kDesktopPatternListRsrcType) } DesktopPatternListRsrcRecPtr = ^DesktopPatternListRsrcRec; DesktopPatternListRsrcRec = RECORD version: SInt16; pattCnt: SInt16; patterns: ARRAY [0..0] OF DesktopPattern; END; DesktopPatternListRsrcPtr = ^DesktopPatternListRsrcRec; DesktopPatternListRsrcHandle = ^DesktopPatternListRsrcPtr; {$ENDC} {$IFC FOR_SYSTEM8_PREEMPTIVE } { Desktop Animation Module type } CONST kItemIsBackground = $0001; kItemIsModule = $0002; kItemIsPattern = $0003; kItemIsNoModule = $0004; { Used internally } TYPE DesktopAnimItemType = SInt16; { Desktop Animation status } CONST kDesktopAnimationTurnedOn = $00000001; { Desktop animation is on } kScreenSaverTurnedOn = $00000002; { Screen saving is turned on } kScreenSaverAsleep = $00000004; { Currently in screen saving mode } kScreenSaverDemoMode = $00000008; { Screen saving demo mode (read only) } TYPE DesktopAnimationStatusType = UInt32; { Module description reference } DesktopAnimModuleDescRef = ^LONGINT; { Desktop Animation Manager API } FUNCTION GetDesktopAnimationDesktopPatternsFileRef(VAR pattFileRef: FSObjectRef): OSStatus; C; PROCEDURE GetDesktopAnimationStatus(VAR status: DesktopAnimationStatusType); C; FUNCTION SetDesktopAnimationStatus(status: DesktopAnimationStatusType): OSStatus; C; FUNCTION NewDesktopAnimationModuleDescRef(itemName: TextObject; itemFile: FSObjectRef; itemID: SInt32; itemType: DesktopAnimItemType; VAR moduleDescRef: DesktopAnimModuleDescRef): OSStatus; C; FUNCTION CloneDesktopAnimationModuleDescRef(moduleDescRef: DesktopAnimModuleDescRef): OSStatus; C; FUNCTION EquivalentDesktopAnimationModuleDescRefs(moduleADescRef: DesktopAnimModuleDescRef; moduleBDescRef: DesktopAnimModuleDescRef): BOOLEAN; C; FUNCTION GetDesktopAnimationModuleDescInfo(moduleDescRef: DesktopAnimModuleDescRef; itemName: TextObject; VAR itemFile: FSObjectRef; VAR itemID: SInt32; VAR itemType: DesktopAnimItemType): OSStatus; C; FUNCTION DisposeDesktopAnimModuleDescRef(moduleDescRef: DesktopAnimModuleDescRef): OSStatus; C; {$ENDC} {$ALIGN RESET} {$POP} {$SETC UsingIncludes := DesktopAnimationIncludes} {$ENDC} {__DESKTOPANIMATION__} {$IFC NOT UsingIncludes} END. {$ENDC}